<?php

namespace App\Models;

use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
use Jedrzej\Pimpable\PimpableTrait;

class StoreCouponUser extends Model
{
    use HasFactory;
    use PimpableTrait;

    /**
     *可批量赋值的字段
     */
    public $fillable = [
        'cid',
        'user_id',
        'coupon_title',
        'coupon_price',
        'use_min_price',
        'add_time',
        'end_time',
        'use_time',
        'type',
        'status',
        'is_fail',
    ];

    /**
     * 强制转换时间类型
     */
    public $casts = [
        'add_time' => 'date',
        'end_time' => 'date',
    ];

    /**
     * 可模糊查询的字段
     */
    public $searchableModels = [
        'coupon_title' => '%field%',
    ];

    /**
     * 可搜索的字段
     */
    public $searchable = [
        'user_id',
        'end_time',
        'use_time',
        'coupon_title',
        'coupon_price',
        'status',
        'use_min_price',
        'add_time',
        'type',
    ];

    /**
     * 状态
     */
    public $statusLet = [
      'status_one' => '未使用',
      'status_two' => '已使用',
      'status_three' => '已过期',
    ];

    /**
     * 默认倒序排序
     */
    protected $defaultSortCriteria = ['id,desc'];

    /**
     * 优惠券发放所关联的用户
     */
    public function user(){
        return $this->hasOne(User::class,'id','user_id');
    }

}
